package com.example.thread.d9CompletableFuture2.d3异步任务回调;

import com.example.thread.d9CompletableFuture2.CommonUtils;

import java.util.Arrays;
import java.util.concurrent.CompletableFuture;

// 如果你不想从回调函数返回结果，而只想在Future完成后运行一些代码，则可以使用thenAccept（），
// 这些方法是入参一个Consumer<T>,它可以对异步任务的执行结果进行消费使用，方法返回CompletableFuture<void>
public class D2ThenAcceptDemo {
    public static void main(String[] args) {
        CommonUtils.printThreadLog("main start");

        CompletableFuture.supplyAsync(()-> {
            CommonUtils.printThreadLog("读取文件");
            return CommonUtils.readFile("aaa,bbb,ccc");
        }).thenApply(content-> {
            CommonUtils.printThreadLog("转换为数组");
            return content.split(",");
        }).thenAccept(content -> {
            CommonUtils.printThreadLog("content:"+ Arrays.toString(content));
        });

        CommonUtils.printThreadLog("main end");
    }
}
